#pragma once
#include "m_Bmpdef.h"
#include <fstream>
#include <iostream>
class m_Bmp
{
public:
	m_Bmp(void);
	~m_Bmp(void);

    bool Load(char*);			//从文件载入
    bool SaveAs(char*);			//保存至文件

	//注意，该函数获得的是一个像素点，不是颜色位，坐标为分辨率坐标
	RGBQUAD* GetPoint(int x, int y) const { return (RGBQUAD*)(RGBData + x * 3 + y * nSizePerLine);}

	int GetWidth() { return nWidth;}
	int GetHeight() { return nHeight;}
private:
    BITMAPFILEHEADER* bfHeader;		//文件头
    BITMAPINFOHEADER* biHeader;		//信息头
    BYTE* BitmapData;				//文件数据
    BYTE* RGBData;					//图像数据
    int nLen;                       //文件长度
    int nWidth;                     //图像宽
    int nHeight;                    //图像高
    int nSizePerLine;               //每行实际长度(单位byte 对齐)
};

